//
//  LXJProfileController.swift
//  XJWeiBo
//
//  Created by 李旭杰 on 2017/3/26.
//  Copyright © 2017年 李旭杰. All rights reserved.
//

import UIKit
import SVProgressHUD

/// 我的主页视图控制器

let fansListCellID = "fansListCellID"

class LXJProfileController: LXJVisitorViewController {
    
    /// viewModel 属性
    lazy var fansViewModel: LXJFansViewModel = LXJFansViewModel()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        /// 在登录状态下修改导航摁扭
        if isLogin {
            /// 界面搭建
            setupNavUI()
        }else{
            /// 界面搭建
            setupUI()
        }
    }
    
    // MARK: 页面搭建
    func setupUI() -> Void {
        visitorView?.updateVisitorView(imageName: "visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
    }
    // MARK: 界面搭建
    func setupNavUI() -> Void {
        view.backgroundColor = UIColor.white
        /// push摁扭
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "push", target:self, action: #selector(pushAction))
        
        /// 注册单元格
        tableView.register(LXJFansListCell.self, forCellReuseIdentifier: fansListCellID)
        /// 设置行高
        tableView.rowHeight = 80
//        tableView.separatorStyle = .none
        
        /// 数据请求
        requestFansListData()
    }
    
    
    /// 数据请求
    fileprivate func requestFansListData(){
        fansViewModel.requestFansInfo { (success) in
            if success{
                SVProgressHUD.setStatus("粉丝数据请求成功")
                /// 刷新心数据源
                 self.tableView.reloadData()
            }
        }
    }
    
    // MARK: push按钮的功能实现
    @objc private func pushAction() -> Void {
        let newVC = LXJTestViewController()
        navigationController?.pushViewController(newVC, animated: true)
    }    
}
/// 实现数据源的代理方法
extension LXJProfileController {
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return fansViewModel.fansModelList?.count ?? 0
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: fansListCellID, for: indexPath) as! LXJFansListCell
        cell.fansInfo = fansViewModel.fansModelList?[indexPath.row]
        return cell
    }
}
